// 实质也是斐波那契数列问题
// 第一次跳台阶有两种跳法，一次跳一阶或一次跳两阶
// 1. 第一次跳一阶，剩下 n-1 阶，跳法数为 f(n-1)
// 2. 第一次跳两阶，剩下 n-2 阶，跳法数位 f(n-2)
// 总跳法数： f(n) = f(n-1) + f(n-2)

var numWays = function (n) {
	if (n <= 1) {
		return 1;
	}
	let prev1 = 1;
	let prev2 = 1;
	let res = 0;
	for (let i = 2; i <= n; i++) {
		res = (prev1 + prev2) % (1e9+7);
		prev2 = prev1;
		prev1 = res;
	}
	return res;
};
console.log(numWays(5));